Python 时间操作之dateutil模块

您所在的位置:网站首页 easter和easter day区别 Python 时间操作之dateutil模块

Python 时间操作之dateutil模块

2023-10-30 04:43| 来源: 网络整理| 查看: 265

这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战

复习回顾

关于时间相关的模块,强大的Python提供了许多内置模块。

time 模块:重点处理系统时间戳计算 calendar 模块:处理通用日历操作 zoneinfo 模块:Python 3.9 支持对IANA时区代码处理 datetime 模块:提供6个大类对时间日期更人性化操作

image.png

本期,我们将对时间操作第三方模块之一的dateutil模块相关方法学习,Let's go~

1. dateutil 模块概述

dateutil 模块由Gustavo Niemeyer 在2003年编写而成,经历四位维护人员进行维护,目前已经更迭得到最新的2.8.2版本

dateutil 模块对Python 内置的datetime模块进行扩展时区和解析。

查看dateutil模块包含7个模块,其中parser和rrule是主要模块

image.png

dateutil 模块特点 能够快速计算出相对时间例如下周、下个月、明年 对指定两个日期或者日期对象进行计算出相对间隔 能对多种时区文件进行解析例如UTC时区、tzinfo时区、Windows注册表时区 支持包括RFC或者其他任何字符串格式的日期进行解析 dateutil 模块获取

dateuitl 模块为Python 第三方库,因此需要使用pip工具进行下载

pip install python-dateutil

image.png

dateutil 模块使用 dateutil 模块需要使用 from..import 导入 2. dateutil 相关方法 datetutil 模块提供7个模块 方法作用dateutil.parser将字符串解析成datetimedateutil.rrule将参数输出datetime.datetime格式的时间dateutil.relativedelta时间偏移量dateutil.easter复活节日期计算dateutil.tz对datetime.tzinfo抽象类时区实现dateutil.utils提供便利且实用功能来处理日期时间dateutil.zoneinfo重建zoneinfo tar 内部时区信息(ftp.iana.org/tz) dateutil 模块提供主要的方法

dateutil.parser.parse(string)将字符串解析成

string 可以为任何一个字符串 时间字符串形式可以有逗号、斜杠、横杆等

datetimedateutil.rrule.rrule() 将参数输出datetime.datetime格式的时间

rrule方法参数说明

参数含义freq单位,可选的值为YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY,,MINUTELY,SECONDLYdtstart开始时间,时间格式datetime.datatime类型interval间隔wkst周开始时间count生产时间的个数until结束时间,时间格式为datetime.dateatime类型bysetpos必须为整数或者整数序列,设置匹配的周期频率bymonth设置匹配的月份bymonthday设置匹配每月的日期byyearday设置匹配每年的天数byaster设置匹配的复活节,星期天为0byweekno设置匹配第几周byweekdayMO,TU,WE,TH,FR,SA,SUbyhour设置匹配小时byminute设置匹配分钟bysecond设置匹配秒数cache必须为布尔值,其实很启动缓存

dateutil.relativedelta.relativedelta()时间偏移量

参数说明year, month, day, hour, minute, second, microsecond绝对单位,不会执行运算,会直接替换原始日期时间对应的值years, months, weeks, days, hours, minutes, seconds, microseconds相对信息,可以为正数或复负数,会对原始日期时间进行相对值进行计算weekday工作日增量值,可以为正数或者负数,例如MO(1),0=MOleepdays给定日期中计算出润日yearday,nlyearday设置年份为闰年或者非闰年,转换成日/月/闰日

PS: dateutil 模块官方手册 可以查看详细的用法案例

3. 小试牛刀

我们学习了dateutil模块相关的方法,来进行实操一下吧~

使用parse解析时间字符串,rrule获取时间列表

from dateutil.rrule import * def get_two_datelist(sdate,edate): return list(rrule(DAILY,dtstart=parse(sdate),until=parse(edate))) print(get_two_datelist("2021-11-1","2021-11-10")) # 终端输出结果 [datetime.datetime(2021, 11, 1, 0, 0), datetime.datetime(2021, 11, 2, 0, 0), datetime.datetime(2021, 11, 3, 0, 0), datetime.datetime(2021, 11, 4, 0, 0), datetime.datetime(2021, 11, 5, 0, 0), datetime.datetime(2021, 11, 6, 0, 0), datetime.datetime(2021, 11, 7, 0, 0), datetime.datetime(2021, 11, 8, 0, 0), datetime.datetime(2021, 11, 9, 0, 0), datetime.datetime(2021, 11, 10, 0, 0)]

获取指定间隔的时间列表

def get_two_date_interval(sdate,edate): return relativedelta(parse(sdate),parse(edate)) print(get_two_date_interval("2021-10-21","2021-11-10"))

image.png

总结

本期,我们对 dateutil 模块对字符串进行解析、时间间隔相关的操作进行学习。

以上是本期内容,欢迎大佬们点赞评论,下期见~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3